//package com.java1234.rocketmq;
//
//import org.apache.rocketmq.spring.annotation.RocketMQTransactionListener;
//import org.apache.rocketmq.spring.core.RocketMQLocalTransactionListener;
//import org.apache.rocketmq.spring.core.RocketMQLocalTransactionState;
//import org.springframework.messaging.Message;
//import org.springframework.stereotype.Component;
//
///**
// * executeLocalTransaction 方法，当我们处理完业务后，可以根据业务处理情况，返回事务执行状态，
// * 有 bollback , commit or unknown 三种：分别是回滚事务，提交事务和未知；根据事务消息执行流程，
// *
// *  1、如果返回bollback，则直接丢弃消息；
// *  2、如果是返回commit，则消费消息；
// *  3、如果是unknow，则继续等待，然后调用checkLocalTransaction方法，最多重试15次，超过了默认丢弃此消息；
// */
//@Component
//@RocketMQTransactionListener(txProducerGroup = "Tx_Charge_Group") // 这里的txProducerGroup的值要与发送半消息时保持一致
//public class TransactionProducerService implements RocketMQLocalTransactionListener {
//
//    /**
//     * 用于执行本地事务的方法
//     */
//    @Override
//    public RocketMQLocalTransactionState executeLocalTransaction(Message message, Object o) {
//        // ... local transaction process, return bollback, commit or unknown
//        System.out.println("executeLocalTransaction");
//        return RocketMQLocalTransactionState.UNKNOWN;
//    }
//
//    /**
//     * 用于回查本地事务执行结果的方法
//     */
//    @Override
//    public RocketMQLocalTransactionState checkLocalTransaction(Message message) {
//        System.out.println("checkLocalTransaction");
//        return RocketMQLocalTransactionState.COMMIT;
//    }
//}
